Given two integersdividendanddivisor, divide two integers without using multiplication, division and mod operator.

Return the quotient after dividingdividendbydivisor.

The integer division should truncate toward zero.

Example 1:

Input:
 dividend = 10, divisor = 3

Output:
 3

Example 2:

Input:
 dividend = 7, divisor = -3

Output:
 -2

Note:

  • Both dividend and divisor will be 32-bit signed integers.
  • The divisor will never be 0.
  • Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−2 31 , 2 31 − 1]. For the purpose of this problem, assume that your function returns 2 31 − 1 when the division result overflows.

class Solution {

public:

int divide\(int dividend, int divisor\) {

    int result;



    if \(divisor == 0\) return INT\_MAX;

    if \(\(dividend == INT\_MIN\)&&\( divisor == -1\)\) return INT\_MAX;

    if \(\(dividend<0\)&&\(divisor<0\)\|\|\(dividend>0\)&&\(divisor>0\)\){

        return dividend/divisor;

    }

    else{

        return -abs\(dividend\)/abs\(divisor\);

    }

}

};考虑两种会溢出的情况,第一种是除数为0,第二种是INT_MIN/-1

results matching ""

    No results matching ""